//配置axios的基础路径
axios.defaults.baseURL = "http://localhost:8080/";
//配置Vue的全局属性用来获取axios对象
Vue.prototype.$http = axios;


//===============================axios的前置拦截器========================//
//发送axios请求之前都会执行以下代码
axios.interceptors.request.use(res=>{
    //从localStorage获取token
    let token = localStorage.getItem("token");
    if(token){
        //将token设置到请求头
        res.headers["token"] = token;
    }
    return res;
},error => {
    Promise.reject(error)
})
//===============================axios的前置拦截器========================//


//===============================axios的后置拦截器========================//
//发送axios请求之后都会执行以下代码
axios.interceptors.response.use(res=>{ //"{\"success\":false,\"message\":\"noLogin\"}"
    //跳转登录页面
    if(!res.data.success && res.data.message=='noLogin'){
        localStorage.removeItem("token");
        localStorage.removeItem("logininfo");
        //跳转到登录页面
        location.href = "/login.html";
    }
    return res;
},error => {
    Promise.reject(error)
})
//===============================axios的后置拦截器========================//


//===============================静态资源拦截器========================//
var url = location.href;
//如果你访问的不是login.html  并且 不是register.html
if(url.indexOf("/login.html") == -1 && url.indexOf("/register.html") == -1   && url.indexOf("binder.html") == -1  && url.indexOf("callback.html") == -1  ){
    var logininfo = localStorage.getItem("logininfo");
    if(!logininfo){
        location.href = "/login.html";
    }
}
//注意要在index.html中引入common.js

//将地址栏？后面的参数转成json对象 - 以后这样的需求很多
function param2JsonObj(url){
    //截取？后面的参数
    var params = url.substring(url.indexOf("?")+1);
    //按照&进行分割 - 获取每一对参数
    var paraArr = params.split("&");//[code=0314GMkl225Gj94lpBnl2BpYxh14GMk6,state=STATE]
    var obj = {};
    for(var i = 0;i<paraArr.length;i++){
        //获取单个参数
        var para = paraArr[i];
        //获取参数名
        var parakey = para.split("=")[0];
        //获取参数值
        var paraValue = para.split("=")[1];
        obj[parakey] = paraValue;
    }
    return obj;
}
